/*
 * Copyright (c) 2019 Winner Microelectronics Co., Ltd.
 *
 * SPDX-License-Identifier: Apache-2.0
 *
 * Change Logs:
 * Date           Author       Notes
 * 2022-10-31     fanwenl      1st version
 */

#ifndef __WORK_MODE_THREAD_H_
#define __WORK_MODE_THREAD_H_

#include <rtthread.h>
#include <rtdevice.h>
#include "board.h"
#include "delay.h"
#include "stdint.h"
#include "time.h"

#define WORK_MODE_NONE 0x00		   // 不显示模式
#define WORK_MODE_POMODORO 0x10	   // 番茄钟模式
#define WORK_MODE_NUM_COUNTER 0x11 // 计数模式
#define WORK_MODE_SHOW_TIME 0x12   // 显示时间模式

typedef struct pomodoro_data
{
	rt_bool_t on_or_off;
	time_t start_time_stamp;
	time_t stop_time_stamp;
	rt_bool_t is_in_study_time;
	rt_bool_t is_in_rest_time;
	rt_bool_t is_complete_circular;	 // 是否完成了一个番茄钟
	rt_uint8_t total_circular_count; // 单次完成番茄钟计数，连续四个之后要休息25分钟
} pomodoro_data_t;

#define WORK_MODE_SHOW_TIME_HOUR 0x21 // 显示小时
#define WORK_MODE_SHOW_TIME_MIN 0x22  // 显示分钟
#define WORK_MODE_SHOW_TIME_SEC 0x23  // 显示秒

void start_pomodoro_mode(void);
void stop_pomodoro_mode(void);

void increase_num_counter(void);

uint8_t get_work_mode(void);
void set_work_mode(uint8_t mode);

void set_speech_module_uart_to_mcu(void);
void set_speech_module_uart_to_usb2ttl(void);
void set_speech_module_power_on(void);
void set_speech_module_power_off(void);

#endif /* __WORK_MODE_THREAD_H_ */
